Hello, 各位 iT邦幫忙 的粉絲們大家好~~~
本篇是 Re: 從零開始用 Xamarin 技術來複刻過去開發的一個 App: TopStore 系列文的 EP23。
上一篇談到使用 SQLite 套件在 TopStore App 來做資料儲存,接下來繼續測試運作在雙平台(iOS、Android) SQLite DB 建立狀況。
不過在本篇會額外利用到一個 "DB Browser for SQLite" 的工具來協助確認,請各位到下列網址下載適合的平台安裝檔來使用喔。
https://sqlitebrowser.org/
那就開始囉~~~
首先,先來看看 Android 平台。
把 TopStoreApp 部署到一台 Android 6.0 版本的模擬器執行。
透過 "Android Device Monitor" 來監看該模擬器的執行,並且透過其中的 File Explorer 來確認 SQLite DB 檔是否出現。
若有出現的話,可以透過 "Android Device Monitor" 的 "Pull a file from the device"(在 Android Device Monitor 右上角有兩個很小的按鈕的其中一個),把該 SQLite DB 檔拉出來到電腦上。
在 Windows 系統上把 SQLite DB 檔案拉出來後的樣子。
透過前言所說的 "DB Browser for SQLite" 來開啟該 SQLite DB 檔看看。
打開後可以看到上一篇 EP22 撰寫的程式所建立 Person 類別規劃的 Table 資料格式(Data Schema)。
這邊稍微解釋一下,在 Android 7.0 後的 OS 版本因 Android 作業系統的資料安全規範改變,若要看到其裝置內部檔案請改用其他技巧處理,如: Root...等,在此不便多談。
但目前為止 Android 檔案系統規劃從 6.0 之後都沒有大改,所以只要用 Android 6.0 的模擬器確認過一次,理論上後續到目前 Android 11.0 的檔案系統的處理方式都一樣。
再來,繼續來看看 iOS 平台。
把 TopStoreApp 部署到一台 iOS 的模擬器執行。
接下來在 macOS 當中透過 Finder 瀏覽到該模擬器部屬 TopStore App 的資料夾。
這邊稍微解釋一下,其 macOS 用 Finder 瀏覽的路徑為 "/Users/<macOS User Account>/Library/Developer/CoreSimulator/Devices/<Simuloatr uuid>/data/Containers/Data/Applications/<App uuid>/Library/"。
其中有兩個 uuid 為 macOS 系統安裝 Xcode 時自動產生,可能因更新或重新安裝 Xcode 而改變,所以可以在 DbService 的建構式串接好 DB 的檔案路徑時,將其 SQLite DB 檔案的檔案路徑位置,透過 Debug.WriteLine...等方法,在 Visual Studio 的 "輸出" 窗格中以顯示該檔案路徑位置。
因為是 iOS 的模擬器,所以直接可以透過 macOS 的 Finder 將該檔案複製(macOS 系統當中稱作 "拷貝")出來。
在 macOS 系統上把 SQLite DB 檔案拉出來後的樣子。
透過前言所說的 "DB Browser for SQLite" 來開啟該 SQLite DB 檔看看。
打開後可以看到上一篇 EP22 撰寫的程式所建立 Person 類別規劃的 Table 資料格式(Data Schema)。
當然,這是 iOS 模擬器才能這樣作,如果是用實體 iOS 裝置就無法透過這樣的方式測試了,若要透過外部程式看到其實體 iOS 裝置的檔案系統內部狀態,請改用其他技巧處理,如: JB...等,在此不便多談。
由於其 iOS 檔案系統的部分,在模擬器或實體機器的作法是一致的,所以只要用模擬器確認過一次,理論上後續 App 部署到實體機器使用時也不會有太大的問題。
以上就是本 EP23 的介紹囉~~~
下篇 EP24 見唷!
搭啦嘎~~~